'\" et
.TH ERRNO "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
.\"
.SH PROLOG
This manual page is part of the POSIX Programmer's Manual.
The Linux implementation of this interface may differ (consult
the corresponding Linux manual page for details of Linux behavior),
or the interface may not be implemented on Linux.
.\"
.SH NAME
errno
\(em error return value
.SH SYNOPSIS
.LP
.nf
#include <errno.h>
.fi
.SH DESCRIPTION
The lvalue
.IR errno
is used by many functions to return error values.
.P
Many functions provide an error number in
.IR errno ,
which has type
.BR int
and is defined in
.IR <errno.h> .
The value of
.IR errno
shall be defined only after a call to a function for which it is
explicitly stated to be set and until it is changed by the next
function call or if the application assigns it a value. The value of
.IR errno
should only be examined when it is indicated to be valid by a
function's return value. Applications shall obtain the definition of
.IR errno
by the inclusion of
.IR <errno.h> .
No function in this volume of POSIX.1\(hy2017 shall set
.IR errno
to 0. The setting of
.IR errno
after a successful call to a function is unspecified unless the
description of that function specifies that
.IR errno
shall not be modified.
.P
It is unspecified whether
.IR errno
is a macro or an identifier declared with external linkage. If a macro
definition is suppressed in order to access an actual object, or a
program defines an identifier with the name
.IR errno ,
the behavior is undefined.
.P
The symbolic values stored in
.IR errno
are documented in the ERRORS sections on all relevant pages.
.SH "RETURN VALUE"
None.
.SH ERRORS
None.
.LP
.IR "The following sections are informative."
.SH EXAMPLES
None.
.SH "APPLICATION USAGE"
Previously both POSIX and X/Open documents were more restrictive than
the ISO\ C standard in that they required
.IR errno
to be defined as an external variable, whereas the ISO\ C standard required only
that
.IR errno
be defined as a modifiable lvalue with type
.BR int .
.P
An application that needs to examine the value of
.IR errno
to determine the error should set it to 0 before a function call, then
inspect it before a subsequent function call.
.SH RATIONALE
None.
.SH "FUTURE DIRECTIONS"
None.
.SH "SEE ALSO"
.IR "Section 2.3" ", " "Error Numbers"
.P
The Base Definitions volume of POSIX.1\(hy2017,
.IR "\fB<errno.h>\fP"
.\"
.SH COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1-2017, Standard for Information Technology
-- Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 7, 2018 Edition,
Copyright (C) 2018 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group.
In the event of any discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open Group Standard
is the referee document. The original Standard can be obtained online at
http://www.opengroup.org/unix/online.html .
.PP
Any typographical or formatting errors that appear
in this page are most likely
to have been introduced during the conversion of the source files to
man page format. To report such errors, see
https://www.kernel.org/doc/man-pages/reporting_bugs.html .
